/****************************************
*  This file created using "Writer B"   *
*      a program written by CTonk       *
*          ctonk87@hotmail.com          *
*     [timestamp 02/20/06  12:51:45]    *
****************************************/

// Area.h

#ifndef H_AREA
#define H_AREA

#include "magiclist.cpp"

class Area {
	private:
		int		_number;
		int		_firstv;
		int		_lastv;
		int		_size;
		char*	_keyword; // Array set with length 20
		char*	_file; // Array set with length 55
		char*	_name; // Array set with length 40
		Magiclist< Room* > _rooms;
		Magiclist< Object* > _objects;

	public:
		// Constructors...
		Area();
		Area( Area& );
		~Area();

		// Operators...
		Area& operator = ( Area& );
		Room* operator [] ( int );

		// Public accessor methods...
		int		GetNumber();
		void	SetNumber( int );
		int		GetFirstv();
		void	SetFirstv( int );
		int		GetLastv();
		void	SetLastv( int );
		int		GetSize();
		void	SetSize( int );
		char*	GetKeyword( void );
		char	GetKeyword( int );
		void	SetKeyword( char* );
		void	SetKeyword( const char* );
		void	SetKeyword( int, char );
		char*	GetFile( void );
		char	GetFile( int );
		void	SetFile( char* );
		void	SetFile( const char* );
		void	SetFile( int, char );
		char*	GetName( void );
		char	GetName( int );
		void	SetName( char* );
		void	SetName( const char* );
		void	SetName( int, char );
		Magiclist< Room* >& GetRooms();
		void	SetRooms( Magiclist< Room* >& );
		Room*	GetRoom( int );
		Room*	SetRoom( int, Room& );
		Magiclist< Object* >& GetObjects();
		void	SetObjects( Magiclist< Object* >& );
		Object* GetObject( int );
		Object* SetObject( int, Object& );

		// Other methods...
		void	Display( std::ostream& );
		void	Display( std::string& );
		void	Save( std::ofstream& );
		void	Load( std::ifstream& );

};


#endif // #ifndef H_AREA
